#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "visa.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


ViSession defaultRM;//VISA资源管理器
ViSession vi;//资源对话通道标识符（句柄）
ViChar buff[256];//指令存储字符串
ViChar buff1[256];//指令存储字符串
ViUInt32 retCnt;//32位无符号整型

void MainWindow::on_pushButton_clicked()
{

    viOpenDefaultRM(&defaultRM);//打开VISA资源管理器句柄
    viOpen(defaultRM, "TCPIP0::127.0.0.1::5025::SOCKET",0,2000, &vi);// 打开仪器句柄
    viSetAttribute(vi, VI_ATTR_TERMCHAR, '\n');//设置结束符为\n。
    viSetAttribute(vi, VI_ATTR_TERMCHAR_EN, VI_TRUE);//启用结束符。VI_ATTR_TERMCHAR_EN为是否允许终止符
    viSetAttribute(vi, VI_ATTR_TMO_VALUE, 5000);//超时设置为5秒。VI_ATTR_TMO_VALUE为超时值
    sprintf(buff," *IDN?\n");//查询仪器标识
    viWrite(vi, (ViBuf) buff,strlen(buff), &retCnt);//将数据同步写入到器件中
    viRead(vi, (ViBuf) buff1, 256, &retCnt);//从器件同步读取数据
    viClose(vi);//关闭仪器
    viClose(defaultRM);//关闭VISA资源管理器
    ui->lineEdit->setText(buff1);//在lineEdit中显示查询到的仪器标识
}
